package dominio;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

/**
 * @author DEVAIR
 * @version 1.0 @created 02-nov-2013 16:59:06
 */
@Entity
@Table(name = "compromisso")
@SequenceGenerator(name = "compromissoseq",initialValue=1,allocationSize=1)
public class CompromissoMd implements Serializable { 
            
        
    @ManyToMany(cascade = {CascadeType.MERGE})
    private List<UsuarioMd> usuarios = new ArrayList<UsuarioMd>();
         
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "compromissoseq")
    @Column(name="id")
    private long id;
    
    @Column(name="assunto",length=150,nullable=false)
    private String assunto;
        
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    @Column(name="data_inicio")
    private Date dataInicio;
    
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    @Column(name="data_termino")
    private Date dataTermino;
    
    @Column(name="dia_inteiro")
    private boolean diaInteiro;
    
    @Column(name="descricao",length=100)
    private String descricao;
    
    @Column(name="local_compromisso",length=100)
    private String localCompromisso;

   
 

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return the assunto
     */
    public String getAssunto() {
        return assunto;
    }

    /**
     * @param assunto the assunto to set
     */
    public void setAssunto(String assunto) {
        this.assunto = assunto;
    }

    /**
     * @return the dataInicio
     */
    public Date getDataInicio() {
        return dataInicio;
    }

    /**
     * @param dataInicio the dataInicio to set
     */
    public void setDataInicio(Date dataInicio) {
        this.dataInicio = dataInicio;
    }

    /**
     * @return the dataTermino
     */
    public Date getDataTermino() {
        return dataTermino;
    }

    /**
     * @param dataTermino the dataTermino to set
     */
    public void setDataTermino(Date dataTermino) {
        this.dataTermino = dataTermino;
    }

    /**
     * @return the diaInteiro
     */
    public boolean isDiaInteiro() {
        return diaInteiro;
    }

    /**
     * @param diaInteiro the diaInteiro to set
     */
    public void setDiaInteiro(boolean diaInteiro) {
        this.diaInteiro = diaInteiro;
    }

    /**
     * @return the descricao
     */
    public String getDescricao() {
        return descricao;
    }

    /**
     * @param descricao the descricao to set
     */
    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    /**
     * @return the localCompromissoMd
     */
    public String getLocalCompromisso() {
        return localCompromisso;
    }

    /**
     * @param localCompromisso the localCompromissoMd to set
     */
    public void setLocalCompromisso(String localCompromisso) {
        this.localCompromisso = localCompromisso;
    }    
    
    public long getDataInicioLong(){
        return this.dataInicio.getTime();
    }
    
    public long getDataTerminoLong(){
        return this.dataTermino.getTime();
    }

    /**
     * @return the usuarios
     */
    public List<UsuarioMd> getUsuarios() {
        return usuarios;
    }

    /**
     * @param usuarios the usuarios to set
     */
    public void setUsuarios(List<UsuarioMd> usuarios) {
        this.usuarios = usuarios;
    }
        
}